package com.ce.pms.customer.service;

import java.util.List;

import com.ce.pms.common.model.SysrefcodeDO;
import com.ce.pms.customer.model.ClientDO;
import com.ce.pms.customer.model.ParticipantDO;
import com.ce.pms.customer.vo.CustomerHouseVO;
import com.ce.pms.customer.vo.CustomerVO;
import com.ce.pms.customer.vo.IndividualVO;
import com.ce.pms.customer.vo.OrganizationVO;
/**
 * 功能描述:
 * <p>
 * 版权所有：中企动力
 * <p>
 * 未经本公司许可，不得以任何方式复制或使用本程序任何部分
 *
 * @author 付湘辉 Created on 2008-05-22
 */
public interface IOwnerService extends ICustomerService {

	/**
	 *
	 * 功能描述: 通过参与人(业主)id得到其所有房屋信息VO对象列表
	 *
	 * @author 付湘辉
	 * Created on:2008-6-11
	 *
	 * 修改原因：
	 * @param participantId
	 * @return List<CustomerHouseVO> 房屋信息VO对象列表
	 */
	public List<CustomerHouseVO> getOwnerHouseListById(Long participantId);

	/**
	 * 功能描述: 判断是否能够添加划款银行帐号 <br>
	 * @param customerHouseVO 客户房屋信息，其中保存有要新增的划款银行帐号信息
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-9-2  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public Boolean canAddBankAccount(CustomerHouseVO customerHouseVO);

	/**
	 *
	 * 功能描述: 查询除指定房号外的其它房屋中,所关联的指定合同号或者产权号的数量
	 * 注意:参数contactNO 和 proRightNO 有一个应该为空
	 *
	 * @author 付湘辉
	 * Created on:2008-6-26
	 *
	 * 修改原因：
	 * @param houseNumber
	 * @param contactNO
	 * @param proRightNO
	 * @return Integer 返回结果
	 */
	public Integer getProRightCountByHouse(String houseNumber,String contactNO,String proRightNO);

	/**
	 * 功能描述: 通过房屋id查询得到所有业主信息 <br>
	 * @param houseId
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-8-19  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public List<CustomerVO> getAllOwnerByHouseId(Long houseId);

	/**
	 * 功能描述: 通过房屋id和产权id查询得到所有业主信息 <br>
	 * @param houseId
	 * @param proRightId
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-8-19  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public List<CustomerVO> getAllOwnerByHouseId(Long houseId,Long proRightId);

	/**
	 * 功能描述: 添加一个客户，指定类型和创建者 <br>
	 * @param participantDO
	 * @param clientType
	 * @param oprator
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-10-21  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public ClientDO addClient(ParticipantDO participantDO, SysrefcodeDO clientType,Long oprator);

	/**
	 * 功能描述: 修改一个客户，指定类型和创建者 <br>
	 * @param clientDO
	 * @param participantDO
	 * @param clientType
	 * @param oprator
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-10-21  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public ClientDO editClient(ClientDO clientDO,ParticipantDO participantDO, SysrefcodeDO clientType,Long oprator);
}
